/**
 * 主键实体
 */
export interface IdEntity {
  /**
   * 物理主键
   */
  id: string
}

/**
 * 不可变实体，包含创建相关的审计字段
 */
export interface ImmutableEntity extends IdEntity {
  /**
   * 创建时间
   */
  createTime: string
  /**
   * 创建人主键
   */
  creatorId: string
  /**
   * 创建人，系统自动根据主键获取其值
   */
  creatorName: string
}

/**
 * 可变的字段，包含更新相关审计字段
 */
export interface MutableEntity extends ImmutableEntity {
  /**
   * 更新时间
   */
  updateTime: string
  /**
   * 更新人主键
   */
  updaterId: string
  /**
   * 更新人名称，系统自动根据主键获取其值
   */
  updaterName: string
}

/**
 * 租户不可变实体，包含租户id
 */
export interface TenantImmutableEntity extends ImmutableEntity {
  /**
   * 租户id
   */
  tenantId: string
  /**
   * 租户名称
   */
  tenantName: string
}

/**
 * 租户可变实体，包含租户id
 */
export interface TenantMutableEntity extends MutableEntity {
  /**
   * 租户id
   */
  tenantId: string
  /**
   * 租户名称
   */
  tenantName: string
}
